package com.ddf.customs;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import com.ddf.entity.User;

/**
 * Spring 定义了3种类型的转换器接口，实现任意一个转换器接口都可以作为自定义接口转换器注册到
 * 		ConversionServiceFactoryBean中
 * 1. Converter<S, T> 将S类型对象转换为T类型对象
 * 2. ConverterFactory 将相同多个系列的“同质”Converter封装在一起。如果希望将一种类型的对象转换为另一种类型
 *    及其子类的对象（例如将String转换为Number及其Number子类。Integer、Long、Double等）
 * 3. GenericConverter 会根据源类对象及目标对象所在的宿主类中的上下人信息进行类型转换
 * @author ddf 2016年9月6日上午10:00:07
 *
 */
@Component
public class UserConversionDemo implements Converter<String, User> {
	private Logger log = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public User convert(String userStr) {
		log.info("----------UserConversionDemo process--------");
		User user = new User();
		if(userStr != null && !"".equals(userStr)) {
			String[] userInfo = userStr.split("/");
			if(userInfo != null && userInfo.length == 4) {
				user.setId(Integer.parseInt(userInfo[0]));
				user.setUserName(userInfo[1]);
				user.setPassword(userInfo[2]);
				user.setSex(userInfo[3]);
			}
		}
		return user;
	}


}
